package com.ilxqx.framework.system.validator.anno;

import com.ilxqx.framework.system.validator.UniqueValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = UniqueValidator.class)
public @interface MultiFieldsUnique {

	String message() default "{multiFieldsUnique}";

	Class<?>[] groups() default {};

	Class<? extends Payload>[] payload() default {};

	/**
	 * 服务类在容器中的名字，一般可不用指定
	 * @return 名字
	 */
	String serviceName() default "";

	/**
	 * 实体服务类，用于检测指定主键对应的记录是否在数据库中存在
	 * @return 服务类
	 */
	Class<?> service();

	/**
	 * 判断方法
	 * @return 判断方法名
	 */
	String method();

	/**
	 * 唯一字段数组
	 * @return 数组
	 */
	String[] fields();

}
